﻿using System;
using System.Collections;
using System.Collections.Generic;
using CIIS.Common;
using Contract.IService;
using Framework;

namespace CIIS
{
    public class Utils
    {
        public static readonly Utils Instance = new Utils();
        Utils()
        {
        }

        public IList GetDataList<T>(IDaoService dao)
        {
            return GetDataList(dao, typeof(T).Name);
        }

        public IList GetDataList(IDaoService dao, string tableName)
        {
            QueryInfo info = new QueryInfo();
            info.QueryObject = tableName;
            IList list = dao.FindList(info);
            return list;
        }


        public DropdownControlParam GetDcpFromEnums<T>()
        {
            return GetDcpFromEnums(typeof(T));
        }
        public DropdownControlParam GetDcpFromEnums(Type enumType)
        {
            string[] displays = Enum.GetNames(enumType);
            Array values = Enum.GetValues(enumType);

            List<object> dataList = new List<object>();
            for (int i = 0; i < displays.Length; i++)
            {
                DropDownListItem a = new DropDownListItem() { Name = displays[i], Value = ((int)values.GetValue(i)).ToString() };
                dataList.Add(a);
            }
            DropdownControlParam dcp = new DropdownControlParam() { DisplayMember = "Name", ValueMember = "Value", DataSource = dataList };
            return dcp;
        }

        public void test()
        {
            GetDcpFromEnums(typeof(EMenus));
        }
    }

    #region enums
    public enum EMenus
    {
        人员档案管理 = 4100,
        特情人员管理,
        特情人员审核,
        特情工作布置,
        特情保护协调,
        特情奖励,
        重点刑嫌人员管理,
        重点刑嫌人员审核,
        重点刑嫌人员交控登记,
        重点刑嫌人员调控登记,
        侦查阵地登记,
        侦查阵地登记审核,

        业务应用 = 4200,
        特情线索档案,
        特情线索档案审核,
        打击处理刑嫌,
        线索处理结果,

        综合查询 = 4300,
        特情人员查询,
        重点刑嫌人员查询,
        阵控点查询,
        线索关联查询,
        数据导入导出查询,

        考核统计 = 4400,
        刑事特情数据统计,
        特情发挥情况统计,
        未提供线索情况统计,
        线索使用情况统计,
        线索交叉发挥情况统计案件,
        线索交叉发挥情况统计人员,
        阵控点发挥情况统计,
        全省刑侦基础工作统计分析,
        月破案情况登记,

        用户管理主 = 4500,
        角色管理,
        用户管理,

        系统管理 = 4600,
        单位管理,
        民警信息维护,
        //数据导出,
        数据导出派出所,
        数据导出分局,
        数据导出市局,
        数据导入,
        表码管理,
        全局参数设置
    }

    public enum EOperateType
    {
        Add = 0,
        Delete,
        Modify, //修改
        Change, //变更
        Detail,
        Verify
    }
    /// <summary>
    /// 角色类型
    /// </summary>
    public enum RoleType
    {
        超级管理员 = 0,
        市局市局一般用户,
        分局一般用户,
        派出所一般用户
    }
    #endregion
}
